<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Randoop:  Automatic unit test generation for Java</title>

    <link rel="stylesheet" href="stylesheets/styles.css">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  </head>
  <body>
      <header>
    <img src="images/randoop-logo.png" alt="Randoop logo" style="float:left" />
        <h1>Randoop</h1>
        <p>Automatic unit test generation for Java</p>
        <p class="view"><a href="https://github.com/randoop/randoop">View the Project on GitHub <small>randoop/randoop</small></a></p>
        <ul>

          <li><a href="https://github.com/randoop/randoop/releases/latest">Download the <strong>Latest Release</strong></a></li>
          <li><a href="https://github.com/randoop/randoop">View the <strong>GitHub Project</strong></a></li>
        </ul>
      </header>
      <section>
<br/>
<h2>
<a id="what-is-randoop" class="anchor" href="#what-is-randoop" aria-hidden="true"><span class="octicon octicon-link"></span></a>What is Randoop?</h2>

<p>Randoop is a unit test generator for Java. It automatically creates unit tests for your classes, in JUnit format.</p>

<p>The <a href="manual/index.html">Randoop manual</a> tells you how to
<a href="manual/index.html#getting_randoop">install</a> and
<a href="manual/index.html#running_randoop">run</a> Randoop.
</p>

<h2>
<a id="how-does-randoop-work" class="anchor" href="#how-does-randoop-work" aria-hidden="true"><span class="octicon octicon-link"></span></a>How does Randoop work?</h2>

<p>
Randoop generates unit tests using feedback-directed random test generation.
This technique randomly, but smartly, generates sequences of
method/constructor invocations for the classes under test.
Randoop executes the sequences it creates, using the results of the
execution to create assertions that capture the behavior of your program.
Randoop creates tests from the code sequences and assertions.
</p>

<p>
Randoop can be used for two purposes:  to find bugs in your program, and to
create regression tests to warn you if you change your program's behavior
in the future.
</p>

<p>
Randoop's combination of randomized test generation and test execution
results in a highly effective test generation technique.
Randoop has revealed previously-unknown errors even in widely-used
libraries including Sun's and IBM's JDKs and a core .NET component.
Randoop continues to be used in industry, for example at ABB corporation.
</p>

<hr>

<h2>
<a id="documentation" class="anchor" href="#documentation" aria-hidden="true"><span class="octicon octicon-link"></span></a>Documentation</h2>

<p><a href="manual/index.html">Randoop user manual</a></p>

<p>For Randoop developers/contributors:</p>

<ul>
  <li>
    <a href="manual/dev.html">Randoop developer manual</a>
  </li>
  <li>
    <a href="api/">Randoop API documentation</a>
  </li>
  <li>
    <a href="https://randoop.github.io/randoop/projectideas.html">Project ideas page (for contributors/researchers)</a>
  </li>
</ul>


<p><a href="publications.html">Scientific papers about Randoop</a></p>

<hr>

<h2>
<a id="net-version-of-randoop" class="anchor" href="#net-version-of-randoop" aria-hidden="true"><span class="octicon octicon-link"></span></a>.NET version of Randoop</h2>

<p>A version of Randoop that works with Microsoft's .NET platform is available at <a href="https://github.com/abb-iss/Randoop.NET">https://github.com/abb-iss/Randoop.NET</a>.  Randoop.NET is a from-scratch re-implementation of feedback-directed test generation.
<!-- (who also came up with the "Randoop" name; the previous Java toolwas known as "Joe")
  -->
The link above is to <a href="https://github.com/abb-iss/Randoop.NET">ABB Corporation's updated version of Randoop.NET</a>.  Compared to <a href="https://archive.codeplex.com/?p=randoop">the original version of Randoop.NET from Microsoft Research</a>:
</p>
<ul>
  <li>It fixes some bugs.</li>
  <li>It adds new features, notably regression assertions for more effective regression testing, method transformers to delete or replace calls to specific methods in the assembly, and richer debug information collection.</li>
  <li>It adds a GUI, as a VS2010 add-in.</li>
</ul>
      </section>

  </body>
</html>

<!--  LocalWords:  mernst randoop plugin JDKs ABB VS2010
 -->
